package com.neusoft.care.controller;

import com.neusoft.care.dto.ClientCareItemDto;
import com.neusoft.care.po.CareItem;
import com.neusoft.care.po.ClientCareItem;
import com.neusoft.care.po.ResponseBean;
import com.neusoft.care.service.ClientCareItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
//@CrossOrigin("*")
@RequestMapping("/ClientCareItemController")
public class ClientCareItemController {

    @Autowired
    private ClientCareItemService clientCareItemService;

    @GetMapping
    public ResponseBean<List<CareItem>> getAllClientCareItems() {
        return clientCareItemService.getAllCareItems();
    }

    @GetMapping("/{id}")
    public ResponseBean<ClientCareItem> getClientCareItemById(@PathVariable Integer id) {
        return clientCareItemService.getClientCareItemById(id);
    }

    @GetMapping("/getClientCareItemsByClientId")
//    根据客户Id查询客户的护理项目信息
    public ResponseBean<List<ClientCareItemDto>> getClientCareItemsByClientId(Integer clientId) {
        return clientCareItemService.getClientCareItemsByClientId(clientId);
    }

    @GetMapping("/getClientCareItem")
//    查询特定护理项目信息，给客户id和项目id
    public ResponseBean<ClientCareItem> getClientCareItem(@RequestParam Integer clientId, @RequestParam Integer itemId) {
        return clientCareItemService.getClientCareItem(clientId, itemId);
    }

    @GetMapping("/getClientCareItemsClientNotHave")
//    查询客户没有的护理项目
    public ResponseBean<List<CareItem>> getClientCareItemsClientNotHave(Integer clientId) {
        return clientCareItemService.getClientCareItemsClientNotHave(clientId);
    }

    @PostMapping("/addClientCareItemByGroup")
//    批量给客户添加护理项目
    public ResponseBean<Integer> addClientCareItemByGroup(@RequestParam Integer clientId, @RequestParam Integer levelId, @RequestBody List<ClientCareItem> clientCareItems) {
        return clientCareItemService.addClientCareItemByGroup(clientId, levelId, clientCareItems);
    }

    @PostMapping("/addClientCareItem")
//   给客户添加客户没有的护理项目，给客户id，项目id，数量，购买时间，过期时间，封装成@RequestBody
    public ResponseBean<Integer> addClientCareItem(@RequestBody ClientCareItem clientCareItem) {
        return clientCareItemService.addClientCareItem(clientCareItem);
    }

    @PutMapping("/updateClientCareItem")
//    续费已有的项目, 要给客户id，项目id，续费后的数量，以及到期时间，封装成@RequestBody
    public ResponseBean<Integer> updateClientCareItem(@RequestBody ClientCareItem clientCareItem) {
        return clientCareItemService.updateClientCareItem(clientCareItem);
    }

    @DeleteMapping("/deleteClientCareItem")
//    移除客户的护理项目
    public ResponseBean<Integer> deleteClientCareItem(@RequestParam Integer clientId, @RequestParam Integer itemId) {
        return clientCareItemService.deleteClientCareItem(clientId, itemId);
    }

    @PutMapping("/updateById")
    public ResponseBean<Integer> updateById(@RequestBody ClientCareItem clientCareItem) {
        return clientCareItemService.updateById(clientCareItem);
    }


}